Получите текущее имя пользователя Windows в Silverlight

Это мой код, который я использую в своих проектах:

function isMobile() {
 try {
    if(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {
     return true;
    };
    return false;
 } catch(e){ console.log("Error in isMobile"); return false; }
}
20
задан Hossein Narimani Rad 27 April 2015 в 07:49
поделиться

4 ответа

Я успешно собрал его, добавив в Matcher в SubMatcher.with :

class SubMatcher extends BaseMatcher {
    @Override
    public SubMatcher with(Matcher<?,?> matcher) {
        return this;
    }
}

Без этого сигнатура метода отличается от базовой. Интересно, есть ли ошибка в проверке @Override , которая этого не замечает.

Текущее имя пользователя и домен Windows

и этот поток, похоже, подтверждают, что для этого нет собственного способа. Затем поток предлагает «вставить» текущее имя пользователя ASP.NET со страницы ASP.NET, на которой «размещается» приложение Silverlight. в само приложение Silverlight до его запуска в контексте клиентской машины. Конечно, даже если это сработает, он предоставит вам только имя пользователя ASP.NET либо из форм ASP.NET, либо из аутентификации на основе Windows, а не имя пользователя Windows для текущего пользователя клиентской машины. .

в само приложение Silverlight до его запуска в контексте клиентской машины. Конечно, даже если это сработает, он предоставит вам только имя пользователя ASP.NET либо из форм ASP.NET, либо из аутентификации на основе Windows, а не имя пользователя Windows для текущего пользователя клиентской машины. .

в само приложение Silverlight до его запуска в контексте клиентской машины. Конечно, даже если это сработает, он предоставит вам только имя пользователя ASP.NET либо из форм ASP.NET, либо из аутентификации на основе Windows, а не имя пользователя Windows для текущего пользователя клиентской машины. .

27
ответ дан 29 November 2019 в 22:43
поделиться

в соответствии с этим сообщением это невозможно в javascript, поэтому я думаю, что вам не повезло: http://bytes.com/topic/javascript/answers/616501-how-get-windows-username-using-javascripts

звучит так, как будто реального способа сделать это нет.

0
ответ дан 29 November 2019 в 22:43
поделиться

Этим способом можно обойтись.

1) Создайте приложение веб-службы asp.net.

2) Реализуйте веб-службу и метод для вызова из приложения silverlight.

[WebMethod]
public string GetClientUserName()
{
    return System.Web.HttpContext.Current.User.Identity.Name.ToString();
}

3) Разверните это приложение веб-службы на веб-сервере. Не разрешайте анонимному пользователю доступ к нему.

4) Добавьте эту службу в приложение Silverlight. (Добавить ссылку на службу)

5) Теперь вы можете вызвать этот метод и получить имя пользователя из всего приложения Silverlight.

28
ответ дан 29 November 2019 в 22:43
поделиться

Я решил поделиться этим кодом, который, кажется, работает (YMMV). Он вдохновлен ответом CraigTP и его ссылками. Я знаю, что это напрямую не отвечает на вопрос о работе на статической веб-странице, но похоже, что OP принял компромисс APSX.

На моей странице ASPX, на которой размещается Silverlight:

<head>
    <!-- ...snip... -->
    <script runat="server" language="c#">
    void Page_Load()
    {
        this.UsernameField.Value = User.Identity.Name;
    }        
    </script>
</head>
<body>
   <input type="hidden" ID="UsernameField" runat="server" />
   <!-- ...snip... -->
</body>

В моем коде Silverlight C #:

 private string GetCurrentUserName()
 {
     HtmlDocument doc = HtmlPage.Document;

     if (doc == null)
     {
         return string.Empty;
     }

     HtmlElement elm = doc.GetElementById("UsernameField");

     if (elm == null)
     {
         return string.Empty;
     }

     return elm.GetAttribute("value");
 }
3
ответ дан 29 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: