app.xaml / app.xaml.cs проблема пользовательской аутентификации - PullRequest
1 голос
/ 11 ноября 2010

Я использую пользовательскую аутентификацию для своего приложения silverlight. Если этот код в моем app.xaml: -

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             x:Class="SilverlightCustomAuthExample.App"
             xmlns:local="clr-namespace:SilverlightCustomAuthExample"
             xmlns:appsvc="clr-namespace:System.ServiceModel.DomainServices.Client.ApplicationServices;assembly=System.ServiceModel.DomainServices.Client.Web"
             >
    <Application.Resources>

    </Application.Resources>
    <Application.ApplicationLifetimeObjects>
        <local:WebContext>
            <local:WebContext.Authentication>
                <appsvc:FormsAuthentication/>
            </local:WebContext.Authentication>
        </local:WebContext>
    </Application.ApplicationLifetimeObjects>
</Application>

работает нормально. Однако, если я пытаюсь сделать то же самое в app.xaml.cs, это не сработает: -

private void Application_Startup(object sender, StartupEventArgs e)
        {
            this.RootVisual = new MainPage();
            WebContext.Current.Authentication = new FormsAuthentication();


        }

Там написано WebContext.Current сгенерировал исключение invalidoperationexception.

Заранее спасибо:)

1 Ответ

2 голосов
/ 11 ноября 2010

«Кто-то» должен создать экземпляр WebContext.Если вы удалите его из списка ApplicationLifeTimeObjects, он не будет создан.

Вот эквивалентный код в app.xaml.cs (фактически созданный шаблоном Silverlight «Бизнес-приложение») в конструкторе приложения:

        WebContext webContext = new WebContext();
        webContext.Authentication = new FormsAuthentication();
        //webContext.Authentication = new WindowsAuthentication();
        this.ApplicationLifetimeObjects.Add(webContext);
...