有很多类似的问题,但这让我很难过。
如果我使用 [Authorize] 会提示输入用户名和密码,但如果我使用 [InternalAuthorizeV2] 我不会
我有一个自定义的 AuthorizeAttribute ,目前它没有做任何特别的事情(我限制了可能出错的事情)。
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
public class InternalAuthorizeV2Attribute: AuthorizeAttribute
{}
和我的控制器中的一个动作
[InternalAuthorizeV2(Roles = "MobileApps_Parkingggg")]
public ActionResult Index()
{
var model = new VmParking();
return View(model);
}
登录在不同的应用程序中处理,但它们具有相同的 Web 配置行
<machineKey compatibilityMode="Framework20SP2" validationKey="editedOut" decryptionKey="editedOut" validation="SHA1" decryption="AES"/>
<authentication mode="Forms">
<forms name="emLogin" loginUrl="/Login/Index" timeout="540" protection="All" path="/" enableCrossAppRedirects="true" cookieless="UseCookies" />
</authentication>
<sessionState timeout="540" />
我知道,如果我通过使用 [Authorize] 进入页面登录,然后返回我的问题页面,我可以看到用户名,但它似乎没有调用我的客户属性。
新信息: 我的属性位于共享 DLL 中,因为它被许多应用程序使用。看来,如果我将 cs 文件复制到 web 项目,它就可以工作。不知道为什么,仍在寻找提示或提示。