gpt4 book ai didi

c# - ASP.NET 用户/成员/MembershipUser/安全/主体/配置文件...帮助

转载 作者:太空狗 更新时间:2023-10-29 23:11:47 28 4
gpt4 key购买 nike

我知道这听起来像是到处都有解释的东西..但我一直在看很多 asp.net/learn 视频阅读文章 - 但仍然缺少一些东西来解释所有这些“成员(member)资格”是如何联系在一起的。

一方面,内置的 .net 用户管理允许您创建角色、用户等。另一方面,获取该用户并将其存储(在 Session 等中)似乎是一项奇怪的任务,根据我的阅读,涉及创建您自己的“主要”对象等。

如果有人有理解力和时间,他们能否给我们(我)一个简短的解释,说明这一切是怎么回事。也许它是如何联系在一起的......我如何使用字符串用户名/密码来查看帐户是否存在,登录,检查它们是否处于正确的操作角色......甚至获得用户的所有角色是一部分吗?

我知道这个问题可能不太适合已经很了解 .net 用户的人,但请只在你能提供帮助的情况下回答。

非常感谢。佩特斯基

最佳答案

您根本不必创建自己的主体对象。您所能做的就是使用开箱即用的 MembershipProvider(例如:SQLMembershipProvider)之一来管理您的用户,并使用 RoleProvider(例如:SQLRoleProvider)之一为用户设置授权(如果需要)。

要获取用户,您不必将其存储在 session 中。只需使用 Page.User 即可获取当前用户的基本信息(姓名、IsAuthenticated)。

要检查用户凭据是否正确,您可以使用

Membership.ValidateUser(username,password).

要登录,我建议您使用提供的 ASP.NET 登录控件,但您可以编写自己的登录名并多做一些工作。如果您使用表单例份验证,则类似于:

if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
else
Msg.Text = "Login failed. Please check your user name and password and try again.";

P.S : 示例来自MSDN

最后,要检查用户是否可以执行操作,您可以使用

RoleProvider.IsUserInRole(username,rolename)

您还可以通过在 web.config ex 中配置授权来控制对资源(页面、文件、文件夹等)的访问:

<授权> <拒绝用户="?"/> <拒绝用户="*"/>

希望这对您有所帮助,如果不清楚,请随意询问更多信息

编辑

要回答您的评论,请按以下方式操作:

Page.User 使用身份验证 cookie 来识别当前登录的用户。此 cookie 在 FormsAuthentication.RedirectFromLoginPage 中自动设置,但是,如果您只想设置当前用户而不重定向,您可以手动调用 FormsAuthentication.SetAuthCookie(userName,persistentCookie) 其中 persistentCookie 是一个 bool 值,告诉您是否希望此 cookie 持久化或不在浏览器中。

希望它澄清原来的答案

关于c# - ASP.NET 用户/成员/MembershipUser/安全/主体/配置文件...帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1432196/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com