Как установить тип объектов Identity & Principle в WPF и WinForms - PullRequest
0 голосов
/ 03 декабря 2008

В ASP.Net, когда вы используете мастер-страницы, вы можете предоставить странице команду препроцессора «MasterPage Type» по следующим строкам:

<%@ MasterType VirtualPath="~/MasterPage.master" %>

Это используется для предоставления вам доступа к методам и свойствам, которые определены в коде главной страницы. По умолчанию при использовании:

Page.MasterPage

возвращает базовый класс MasterPage. Если вы определили MasterType , то он возвращает его как тип определенной вами главной страницы [в отличие от выполнения чего-то вроде: ctype (Page.MasterPage, MyMasterPage)] *

Мой вопрос: как я могу сделать нечто подобное для объектов Identity и Principle в моем приложении WPF.

По сути, у меня есть собственные объекты Identity и Principle (которые собирают несколько дополнительных полей данных), и мне не нужно явно приводить их из открытого интерфейса каждый раз, когда я хочу получить доступ к этим дополнительным полям.

1 Ответ

0 голосов
/ 04 декабря 2008

Если вы хотите, чтобы это было доступно из кода XAML, вы можете наследовать от класса окна WPF и добавить два свойства для принципала и удостоверения. Эти свойства могут относиться к тому типу, в котором находятся ваши пользовательские Принципал и Идентичность. Затем просто наследуйте от этого класса все ваши WPF Windows.

public class AppWindow : Window
{
    public MyPrincipal Principal
    {
        get { return (MyPrincipal)Thread.CurrentPrincipal; }
    }

    public MyIdentity Identity
    {
        get { return (MyIdentity)Thread.CurrentPrincipal.Identity; }
    }
}

Если вы хотите иметь более широкий доступ к этим элементам, вы можете создать простой объект со статическими свойствами, которые делают то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...