是否可以在不使用DB的情况下使用角色基础身份验证?
我有一个一次性的网络应用程序,基本上只有一个管理员用户。
其他用户只能访问特定文件夹中的页面,而一位管理员用户可以访问所有文件夹中的页面。
到目前为止,我搜索过的所有内容都将角色绑定到数据库。
答案 0 :(得分:1)
根据您使用的技术,您可以覆盖身份验证方法,并将用户名和密码硬编码到web.config文件中。您还可以通过授权部分下的web.config文件指定用户。
<authorization>
<allow users="localAdmin\myAdminUser" />
</authorization>
并在您的身份验证码中:
if (authenticated_username == webConfigUsername && autheticated_password == webConfigPassword) {
FormsAuthentication.SetAuthCookie(authenticated_username, true);
return Redirect("/");
}
或者您可以在身份验证过程中将管理员用户添加到组中,并通过组成员身份执行安全性操作:
<configuration>
<system.web>
<authorization>
<allow roles="admins"/>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
考虑到您的问题/评论,我会考虑实施客户角色提供商。它的基础是实现使应用程序的基础工作所需的方法。您最有可能使用Session对象,而不是去DB。查看MSDN有关如何创建自定义角色提供程序的信息。然后,您就可以保持web.config文件的清洁,然后通过基于用户名的覆盖来放置用户所在的角色。