我似乎无法在Silverlight业务应用程序中使用Windows身份验证。
我已经进行了所需的更改,见下文
在App.xaml中更改为Windows身份验证
public App()
{
InitializeComponent();
// Create a WebContext and add it to the ApplicationLifetimeObjects
// collection. This will then be available as WebContext.Current.
WebContext webContext = new WebContext();
//webContext.Authentication = new FormsAuthentication();
webContext.Authentication = new WindowsAuthentication();
this.ApplicationLifetimeObjects.Add(webContext);
}
在web.config中更改为Windows身份验证
<authentication mode="Windows"/>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
我在Application_UserLoaded事件上放了一个断点但没有任何反应: -
private void Application_UserLoaded(LoadUserOperation operation)
{
foreach (var r in WebContext.Current.User.Roles)
{
//do something
}
}
任何人都可以建议出错的地方。我根本没有对该项目进行任何其他更改。
答案 0 :(得分:0)
这也发生在我之前。事实证明,在Web项目的属性中未启用Silverlight调试。右键单击.Web项目,然后单击属性。然后单击Web选项卡并在底部确保选中Silverlight复选框。
答案 1 :(得分:0)
您必须在Application_Startup
:
WebContext.Current.Authentication.LoadUser(this.Application_UserLoaded, null);
这将在使用Windows身份验证时自动对用户进行身份验证。