Silverlight业务应用程序Windows身份验证

时间:2011-06-10 22:09:17

标签: windows silverlight authentication

我似乎无法在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
        }
    }

任何人都可以建议出错的地方。我根本没有对该项目进行任何其他更改。

2 个答案:

答案 0 :(得分:0)

这也发生在我之前。事实证明,在Web项目的属性中未启用Silverlight调试。右键单击.Web项目,然后单击属性。然后单击Web选项卡并在底部确保选中Silverlight复选框。

答案 1 :(得分:0)

您必须在Application_Startup

中包含此行
WebContext.Current.Authentication.LoadUser(this.Application_UserLoaded, null);

这将在使用Windows身份验证时自动对用户进行身份验证。