<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=347477&amp;view=findpost&amp;p=3047328</guid>
        <pubDate>Sun, 18 Dec 2011 13:08:33 +0000</pubDate>
        <title>Аутентификация и авторизация пользователей в веб-сервисе</title>
        <link>https://forum.sources.ru/index.php?showtopic=347477&amp;view=findpost&amp;p=3047328</link>
        <description><![CDATA[Anyone: Подскажите, пожалуйста, как лучше всего реализовать аутентификацию и авторизацию пользователей в asmx веб-сервисе на основе ролей?<br>
Пользователи и роли удут храниться в БД.<br>
Где-то читал что использование Membership устарело и имеет много недостатков.<br>
Также интересует возможность регистрироваться и управлять своим профилем.<br>
<br>
Решил заюзать Membership со своим MembershipProvider.<br>
Вот метод Login():<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">[WebMethod]</div><div class="code_line">public bool Login(string userName, string password)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;LogHelper.Log.Debug(&quot;Call WebBasedMnemonicWS.WebBasedMnemonicWebService.Login()&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;var toReturn = Membership.ValidateUs er(userName, password);</div><div class="code_line">&nbsp;&nbsp; &nbsp;LogHelper.Log.Debug(&quot;Membership.Name=&quot; + Membership.GetUser().UserName));</div><div class="code_line">&nbsp;&nbsp; &nbsp;return toReturn;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
У меня Membership.GetUser().UserName возвращает пустую строчку.<br>
Тестовый MembershipProvider:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class WbmMembershipProvider: MembershipProvider </div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;public override MembershipUser GetUser(string username, bool userIsOnline)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return new MembershipUser(&quot;CustomMembershipProvider&quot;, username, 1, &quot;&quot;, &quot;&quot;, &quot;&quot;, false, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;public override bool ValidateUser(string username, string password)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return username == password;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
Почему я не вижу текущего пользователя?<br>
Как определить метод Logout?<br>
Спасибо.]]></description>
        <author>Anyone</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      </channel>
      </rss>
	