不使用数据库的角色身份验证

时间:2016-02-01 14:20:41

标签: asp.net authentication

是否可以在不使用DB的情况下使用角色基础身份验证?

我有一个一次性的网络应用程序,基本上只有一个管理员用户。

其他用户只能访问特定文件夹中的页面,而一位管理员用户可以访问所有文件夹中的页面。

到目前为止,我搜索过的所有内容都将角色绑定到数据库。

1 个答案:

答案 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文件的清洁,然后通过基于用户名的覆盖来放置用户所在的角色。