2016-06-07 70 views
0

我有一個UWP應用程序,將由非機器管理員的用戶使用。我將在我們的應用程序中創建一個管理頁面,僅爲我們的應用程序控制一些設置。我想拋出一個用戶名/密碼對話框,用於訪問此管理頁面。我只希望本地計算機上的管理員能夠訪問此管理頁面,因此我想驗證通過我的登錄提示給出的用戶名/密碼是否爲本地管理員。我不需要在任何地方「登錄」這個用戶,我只需要將訪問我的管理頁面僅限於管理員的框中。驗證給定用戶名/密碼是否爲有效的本地管理員的最佳方法是什麼?

有人能指出我正確的方向嗎?如果可能,我寧願使用C#。我看過的很多例子都出現在用戶登錄中,我只需要驗證用戶名/密碼是否有效admin信譽

+0

可能的重複:http://stackoverflow.com/questions/36713824/how-to-get-group-infolike-guest-admin-etc-of-current-login-user-in-uwp-windo – Konstantin

回答

0

UWP應用程序是沙盒,因此在用戶權限級別或系統上沒有提供任何信息他們屬於的團體。最值得推薦的是存儲第一個登錄用戶的用戶名,然後檢查當前通過身份驗證的用戶名和域是否與存儲的值匹配(這樣你也可以避免輸入用戶名/密碼並向普通用戶顯示管理員頁面/登錄)。

IReadOnlyList<User> localAuthenticatedUsers = await User.FindAllAsync(UserType.LocalUser, UserAuthenticationStatus.LocallyAuthenticated); 
User user = users.FirstOrDefault(); 
if (user != null) 
{ 
    String[] userProperties = new String[] 
    { 
     KnownUserProperties.AccountName, 
     KnownUserProperties.DomainName 
    }; 

    IPropertySet values = await user.GetPropertiesAsync(desiredProperties); 
    if (values[KnownUserProperties.AccountName] == storedAccountName && values[KnownUserProperties.DomainName] == storedDomainName) { 
     ... 
    } 
} 

但是這種方法不允許驗證在同一臺機器上的多個管理員。作爲一項解決方案,您可以在管理頁面/設置中的某處維護已批准用戶的列表。

+0

謝謝你響應。有趣的是,即使我正在開發UWP應用程序 - 我們的應用程序將永遠不會提交到商店,而是直接出售給客戶。因此,我們不需要遵守任何商店認證規則。我們牢記這一點 - 您是否知道實現訪問管理權限目標的方式? – user6115111

+0

如果您可以編寫桌面服務來檢查登錄/密碼,那麼您的UWP應用程序可以與此類服務進行通信。 – Konstantin

相關問題