首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用CredUIPromptForCredentials接口时,标题和消息只显示第一个字母

调用CredUIPromptForCredentials接口时,标题和消息只显示第一个字母
EN

Stack Overflow用户
提问于 2012-02-25 01:22:18
回答 1查看 287关注 0票数 0

我正在创建一个对话框,通过调用CredUIPromptForCredentials接口来请求管理凭据。以下是代码的一小段:

代码语言:javascript
复制
     int maxUserID = 100;
     int maxPassword = 100;
     int maxDomain = 100;
     StringBuilder userID = new StringBuilder(maxUserID);
     StringBuilder userPassword = new StringBuilder(maxPassword);
     StringBuilder userDomain = new StringBuilder(maxDomain);

     bool getCredential = false;

     // Setup the flags and variables         
     CREDUI_INFO credUI = new CREDUI_INFO();
     credUI.cbSize = Marshal.SizeOf(credUI);
     credUI.pszCaptionText = "Title";
     credUI.pszMessageText = "Please login as an administrator.";
     credUI.hwndParent = hwndParent;
     bool save = false;

     // for Windows XP
     if (IsWindowsXP)
     {            
        CREDUI_FLAGS flags = CREDUI_FLAGS.DO_NOT_PERSIST | CREDUI_FLAGS.REQUEST_ADMINISTRATOR;
        CredUIReturnCodes returnCode1;

        returnCode1 = PInvoke.CredUIPromptForCredentials(ref credUI, serverName, IntPtr.Zero, 0, userID, maxUserID, userPassword, maxPassword, ref save, flags);
        if (returnCode1 == CredUIReturnCodes.NO_ERROR)
        {
           getCredential = true;
        }
     } 

但是,在Windows XP中,只有标题和消息的前几个字母才会出现,在我的例子中是"T“和"P”。我想不出原因是什么?如有任何提示,我们将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2012-02-25 01:45:26

发布您的CREDUI_INFO声明。它应该看起来像这样:

代码语言:javascript
复制
    struct CREDUI_INFO
    {
        public int cbSize;
        public IntPtr hwndParent;
        public string pszMessageText;
        public string pszCaptionText;
        public IntPtr hbmBanner;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9435159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档