强大的表单身份验证:这是最好的方法吗?

发布于 2025-01-02 12:50:21 字数 368 浏览 0 评论 0原文

我已经在我的网站中实现了表单身份验证,效果很好。但是,这是正确且最安全的方法吗?下面是用户登录系统时我的代码。

 FormsAuthentication.SetAuthCookie(User.ID.ToString(), true);

我一直在使用存储在身份验证 Cookie 中的名称来填充个人资料页面和其他需要用户 ID 的部分,例如日志记录:

 HttpContext.Current.User.Identity.Name

这是实现表单身份验证的正确方法吗?还是我离得远了?如果我是,我相信是这种情况,请提供建设性意见或显示实现表单身份验证的正确方法的链接。

谢谢

I have implemented forms authentication in to my site, this works great. But, is it the correct and most secure way? Here is my code below whent he user logs into the system.

 FormsAuthentication.SetAuthCookie(User.ID.ToString(), true);

I have been using the Name stored in the Auth Cookie to populate the profile page and other sections that require the user id, such as logging:

 HttpContext.Current.User.Identity.Name

Is this the correct way to implement Forms auth? Or am I way off? If I am, which I believe is the case please provide constructive comments or a link that shows the correct way to implement forms authentication.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

嘿看小鸭子会跑 2025-01-09 12:50:21

是的,这是正确的。

您可以使用 ASP.NET 会员资格来改进该流程,该会员资格与使用表单身份验证来管理用户配置文件和角色。它为你做了很多腿部工作。

Yep, that's correct.

You can improve the process by using ASP.NET Membership, which ties in with forms authentication to manage user profiles and roles. It does a lot of the leg work for you.

荆棘i 2025-01-09 12:50:21

您可以使用 FormsAuthenticationTicket 构建自定义票证。

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
    username,
    DateTime.Now,
    DateTime.Now.AddMinutes(30),
    isPersistent,
    userData,
    FormsAuthentication.FormsCookiePath);

  // Encrypt the ticket.
  string encTicket = FormsAuthentication.Encrypt(ticket);

供您参考:http://msdn.microsoft.com /en-us/library/system.web.security.formsauthenticationticket.aspx

you can use FormsAuthenticationTicket to build a customized ticket.

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
    username,
    DateTime.Now,
    DateTime.Now.AddMinutes(30),
    isPersistent,
    userData,
    FormsAuthentication.FormsCookiePath);

  // Encrypt the ticket.
  string encTicket = FormsAuthentication.Encrypt(ticket);

for your information: http://msdn.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

不醒的梦 2025-01-09 12:50:21

不,你还差得很远。这是正确的方法,并且您正在正确使用 HttpContext.Current.User.Identity.Name

No, you are not way off. This is the right way to do it and you are using HttpContext.Current.User.Identity.Name correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文