2012-04-21 3 views
1

попытка добавить ссылку на службу для моего приложения Windows 8. Но файл asmx находится внутри папки, где могут просматриваться пользователи с определенными ролями. Как защищенная папка, я также использую провайдер членства asp.net для веб-сайта. Как я могу добавить эту ссылку или подтвердить ее подлинность?Добавление ссылки на приложение

Спасибо.

ответ

2

Существует более простой способ авторизации пользователей службы, это должно решить некоторые из ваших проблем.

Сначала разместите свою службу в общедоступной папке без авторизации вообще. Это позволит вам добавить ссылку из приложения Windows 8 без проблем.

Тогда, в службе, создать метод для аутентификации пользователей:

public bool Login(string UserName, string Pwd) 
{ 
    // validate the user and create the forms cookie upon succesfull validaition 
    if (IsValid(UserName, Pwd)) 
    { 
     FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(...); 

     string CookieName = FOrmsAuthentication.FormsCookieName; 
     string CookieValue = ticket.Encrypt(); 

     this.Response.Cookies.Add(new HttpCookie(CookieName, CookieValue)); 
    } 
} 

Этот публичный метод будет первый ваш метод для Windows 8 приложение должно вызвать.

Тогда вы защищаете все другие методы обслуживания с PrincipalPermission атрибута:

[PrincipalPermission(Roles="Admin, User")] 
public TheMethodForAdminOrUser() 
{ 
    // do whatever you want 
} 

Атрибуты будут охранять вызов ваших методов обслуживания, так что только пользователи, прошедшие проверку подлинности с действительным вызовом метода Login будет иметь доступ к вашим оказание услуг.

+0

Это будет работать, но что, если я использую HttpContext в некоторых своих веб-методах, не нужно ли приложению Windows 8 отправлять идентификатор сеанса или что-то в каждом запросе, чтобы определить, что текущий пользователь зарегистрирован из клиент? – user1027620

+0

Пока вы используете ТОЛЬКО прокси-экземпляр для всех вызовов, прокси-сервер будет хранить все файлы cookie, включая файл cookie, содержащий идентификатор сеанса. –

+0

Удивительный, спасибо. – user1027620

Смежные вопросы