我的asp.net主页上有以下内联代码,用于在网站导航栏中向用户显示一个glyphicon(如果他们是Admin或SysAdmin角色),并隐藏所有其他用户的glyphicon。
<% if (Page.User.IsInRole("Admin") || Page.User.IsInRole("SysAdmin"))
{ %>
<li id="liAdmin">
<a runat="server" href="~/Admin/Admin.aspx">
<span class="fa fa-wrench"> </span>
</a>
</li>
<% } %>
这在浏览到http网站时按预期工作,但是当浏览到https网站时,只有网站主页上的管理员或SysAdmin用户才会显示glyphicon,并且在浏览网站的任何其他页面时都会隐藏。如果您返回网站的主页,则不会重新显示glyphicon。
由于
答案 0 :(得分:0)
更改cacheRolesInCookie =&#34; true&#34; to cacheRolesInCookie =&#34; false&#34;在我的web.config中解决了这个。
<roleManager defaultProvider="sqlProvider" enabled="true" cacheRolesInCookie="false" cookieName=".ASPROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="true" cookieSlidingExpiration="true" cookieProtection="All">
<providers>
<add name="sqlProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="users_db" applicationName="ReportingSystem" />
</providers>
</roleManager>