Tag: 表单身份validation

将某些页面function或用户界面限制为Asp.Net中经过身份validation的用户

我正在使用Asp.Net/C#构建一个应用程序。我正在使用Forms Authentication 。我有一个要求,即我的许多经过authenticated (not anonymous) users被限制为某些页面function或用户界面。我猜Login Control可以仅用于Authenticated vs Anonymous users.So我的问题是,当我知道某些页面组件要从特定的经过身份validation的用户隐藏时,我该怎么办呢。你认为我需要在page_load事件中使用它来隐藏具有此类要求的页面的组件。 // Is this Tito visiting the page? string userName = User.Identity.Name; if (string.Compare(userName, “Tito”, true) == 0) // This is Tito, SHOW the Delete column FilesGrid.Columns[1].Visible = true; else // This is NOT Tito, HIDE the Delete column FilesGrid.Columns[1].Visible = false; 是否有更好的方法来实现这一点。非常感谢任何帮助。谢谢

FormsAuthentication.SetAuthCookie()是否需要重定向?

在检查用户的凭据并确认它们是好的之后,我正在使用FormsAuthentication.SetAuthCookie(“Username”, false); validation用户。 在Page.User.Identity.IsAuthenticated ,我然后使用Page.User.Identity.IsAuthenticated来确保我们正在处理登录用户而不是访客。 问题在于首先设置auth cookie。 当我设置auth cookie时,我立即运行一个方法,使用Page.User.Identity.IsAuthenticated来更改来自通用“欢迎,来宾!”的欢迎消息。 消息更个性化“欢迎,用户名!” 信息。 在我转到另一个页面之前这不起作用,所以我知道登录过程有效,但在刷新或重定向发生之前,我似乎无法访问所需的信息。 设置auth cookie后我是否需要重定向用户才能使用Page.User.Identity.IsAuthenticated来更改消息?

以编程方式检查页面是否需要基于web.config设置进行身份validation

我想知道是否有办法检查页面是否需要基于web.config设置进行身份validation。 基本上如果有这样的节点 然后我想检查任何页面是否需要身份validation,如果它在帐户目录下,则返回true。 这可能吗?

持久性AuthCookie已设置,但被重定向到登录

我在使用持久性AuthCookie时遇到问题。 validation和登录工作完美,如果我关闭浏览器并重新打开它,身份validation仍然有效,不会重定向到登录页面。 我不知道确切的时间是什么,但是让我们说如果关闭浏览器而不注销并且仅在20分钟后重新打开它我将被重定向到登录页面,即使我在使用web开发人员工具检查时设置了cookie它的到期日期是从现在开始的一个月。 validation用户凭据后我正在做的所有事情都是 FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 在我的Web.Config中我设置了它 … … 还尝试按照此处和其他一些地方对机器密钥进行硬编码,但无效 我正在努力解决这个问题

FormsAuthenticationTicket过期过期

这是我在登录成功时调用的函数。 (我对这个FormAuthentication的事情很新) public static void CreateLoginCookie(User u) { FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(u.Id.ToString(), true, 9*60); string encryptedTicket = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) { Expires = DateTime.Now.AddHours(9) }; HttpContext.Current.Response.Cookies.Add(cookie); } 在web.config我有 我希望用户保持登录状态9小时,但它不起作用。 他们会在一两个小时后退出。 有人能告诉我我错过了什么吗?

在asp.net Web api和angular js中使用的身份validation方法

我正在使用Web api和angular js创建一个网站,我对在我的网站上使用的身份validation感到非常困惑。 我创建了一个login.js ,其中有我的Login方法,它将我的用户名/ Emailid和密码发布到我的Web Api,web api中的方法将validation该用户。 码: $scope.Login() { $.post(“api/Authentication/Login”,Username,Password) { } } Web api代码: [Route] Public Task Login([FromBody] username,password) { //method to authenticate user from database. //Now the tricky parts comes like after authenticating user should i //just store the user id in my session like this Session[“userid]=id or //Should i go […]

属性要求用户登录而不是拒绝访问?

更新:感谢此处的帮助,我创建了以下解决方案: public class CustomAuthorize : AuthorizeAttribute { protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { // Returns HTTP 401 – see comment in HttpUnauthorizedResult.cs // If user is not logged in prompt if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { base.HandleUnauthorizedRequest(filterContext); } // Otherwise deny access else { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary { {“controller”, “Account”}, {“action”, “NotAuthorized”} }); } } […]

针对外部Web服务的ASP.NET MVC Forms身份validation

我正在尝试编写一个ASP.NET MVC应用程序,它是我们的CRM的前端,它具有SOAP Web服务。 我希望用户使用他们的CRM用户名和密码登录我的Web应用程序,然后针对CRM进行身份validation,在页面上进行Web服务调用等。 我开始考虑使用Forms身份validation和实现自定义成员资格提供程序 – 我可以实现我需要的所有方法来ValidateUser() ,但我遇到的问题是,在登录到CRM Web服务后,您将获得一个令牌,必须通过每个后续的Web服务调用传递,我不知道我可以在哪里存储它。 所以我的问题是: 表单身份validation是这里的方式,还是自己处理所有身份validation并将令牌存储在Session中更直接。 如果要进行表单身份validation,我应该在何处以及如何存储此类附加信息。 似乎喜欢使用表单身份validation,但随后将一大堆额外信息(与身份validation相关)撞到一个cookie或会话之外会有点混乱? 任何意见,将不胜感激

ASP .Net中的手动访问控制

有没有办法可以在没有基于内置角色的方式下限制对页面的访问? 基本上,如果用户尝试访问admin.aspx,则会重定向到login.aspx&redirect_url=admin.aspx \然后,他们将使用他们的凭据回发,我会给他们一个会话cookie等等。 有这样的例子吗? 谢谢 编辑: 我无法使用ASP.NET的方式,因为我的数据库有员工用户名和密码。 ASP创建自己的角色等

在ASP.NET窗体身份validation中更改用户密码

我在C#(ASP.NET)中编码并使用Forms身份validation。 我想知道哪个是更改用户密码的最佳方法,而不使用asp:ChangePassword控件。 我不想使用重置密码方法。 我只想获取文本框中的密码并将其替换为旧密码。 请注意我使用的PasswordFormat是passwordFormat =“Hashed” 一些代码片段会有所帮助 编辑: 在我的web.config中,我设置了enablePasswordRetrieval =“false” 我使用以下方法 var myUser = Membership.GetUser(userID); bool isChangeSuccess = myUser.ChangePassword( myUser.GetPassword(), ActivateUserPasswordText.Text.Trim()); 它给了我错误, 此成员资格提供程序尚未配置为支持密码检索。 可以做些什么来解决这些问题? 我真的希望我的PasswordFormat是哈希本身。 问候, Naveen Jose