4

dotnetnukeフレームワークにuserIdを渡すことができ、そのuserIdの詳細で満たされたUserInfoオブジェクトを返す何かがありますか?

そうでない場合、これを行う通常の方法は何でしょうか?

4

6 に答える 6

7

これを試してください(DNN 5.xとC#で)

private UserInfo _currentUser =
                   DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();

その後、後でUserInfoを使用します...

int UserID = _currentUser.UserID
于 2010-08-29T14:18:17.853 に答える
5

私は1つの変更を加えてbdukesによって投稿された方法を使用しました:PortalIdはPortalSettingsから取得できます:

DotNetNuke.Entities.Users.UserInfo user = DotNetNuke.Entities.Users.UserController.GetUser(PortalSettings.PortalId, user_id, true);
于 2010-09-03T08:08:12.897 に答える
3

現在のユーザーを取得するために、バージョン7.3以降、上記のすべてが非推奨になりました。Instance次に、プロパティとGetCurrentUserInfo()メソッドを介してユーザー情報にアクセスする必要があります。

DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo()

したがって、あなたはそのように得ることができますUserId

DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo().UserID

したがって、ユーザーIDを指定すると、次のようなユーザー情報を取得できます。

UserController.GetUserById(PortalId,your_user_id)

これPortalIdはDNNコンテキストによって提供されるプロパティであるため、上記のように入力するだけで済みます。

これがお役に立てば幸いです。

于 2017-02-16T13:42:50.703 に答える
2

DotNetNuke.Entities.Users.UserControllerには、ポータルIDもある場合に、それを実行するメソッド(GetUser)があると思います。ユーザーはポータル間で共有できるため、ユーザーがUserInfoオブジェクトを適切に入力する前に、ユーザー情報を要求しているポータルを知っておく必要があります(明らかに)。

ユーザーIDのみがあり、ポータルIDがない場合は、最初にポータルIDも取得できるかどうかを確認することをお勧めします。そうでない場合は、データベースにアクセスして必要なものを入手する必要があります。理想的には、できる限りそこにいることはありません(データベースは保証されたAPIではないため)。したがって、ユーザーのポータルIDを取得するために簡単なクエリを実行するだけの場合は、次のようになります。

SELECT PortalID From {databaseOwner}{objectQualifier}UserPortals WHERE UserID = @userId

次に、UserController.GetUserを使用して、必要なものを取得できます。

于 2009-08-18T14:03:28.287 に答える
2

ユーザーIDが返されない問題は何ですか

Dim nowUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo
response.write(nowUser)
于 2010-08-20T07:23:55.923 に答える
1

現在のユーザーを取得する必要がある場合は、次のようになります。

Dim nowUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo

ただのメモ。

于 2009-09-24T23:44:20.983 に答える