【发布时间】:2023-04-04 17:41:01
【问题描述】:
我刚刚开始涉足 ASP.NET 安全性。有几个问题。 1)我使用角色管理来限制对某些页面的访问。这是我的 web.config 的部分
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer" applicationName="/" />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="LocalSqlServer"
applicationName="/" name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider, System.Web,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider,
System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
这很好用。但是发生的事情是之前将 connecitonStringName 设置为“ApplicationServices”。而且它行不通。然后我将其更改为“LocalSqlServer”。它开始工作了。
所以我想明白,为什么会这样?另外,LocalSqlServer 只是连接字符串值的另一个任意名称吗?我检查了数据库,角色没有存储在那里。那么角色存储在哪里呢?
这些都是新手问题。提前感谢您的耐心等待
【问题讨论】:
-
在您的 web.config 中,应该有一个名为 LocalSqlServer 的连接字符串。这就是存放角色数据的地方。
标签: asp.net security authentication asp.net-mvc-4 roleprovider