在使用WebForms在VS2013中使用C#for ASP .net 4进行开发时,我正在实现一个已经在我所有应用程序中使用的自定义安全对象。随着从VS2010升级到VS2013,我遇到了这个错误,这让我很烦恼....
无法投射类型的对象 ' System.Security.Principal.WindowsIdentity'输入 ' CustomSecurity.BusinessObject.EmployeeIdentity'
代码位置如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//This is where it fails
EmployeeIdentity employeeIdentity = (EmployeeIdentity)HttpContext.Current.User.Identity;
}
}
这行代码在VS2010中有效,但在VS2013中无效。代码编译但在运行时给出了这个错误。
到目前为止我尝试过的事情:
我的问题: 有哪些其他建议可以解决我的问题?
答案 0 :(得分:0)
因此,从将代码从VS2010转换为VS2013,我需要的更改是将以下内容添加到Web.config中:
<system.webServer>
<modules>
<!-- Add a Custom Authentication module THIS NEEDS TO BE ADDED FOR IIS8 + .NET 4 -->
<add name="DHAAuthenticationModule" type=" DHA.CustomSecurity.BusinessObject.DHAAuthenticationModule, DHA.CustomSecurity.BusinessObject"/>
</modules>
</system.webServer>
我假设的原因是webServer也需要了解对象定义.... 这修复了我遇到的错误。我猜这是非常具体的。
对此有何想法?