C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
ログ内検索
キーワードを複数指定する場合は 半角スペース で区切ってください。
検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
[返信]をクリックすると返信ページへ移動します。
キーワード
/
検索条件
/
(AND)
(OR)
検索範囲
/
(現在のログ)
(全過去ログ)
(過去ログ1)
(過去ログ2)
(過去ログ3)
(過去ログ4)
(過去ログ5)
(過去ログ6)
(過去ログ7)
(過去ログ8)
(過去ログ9)
(過去ログ10)
(過去ログ11)
(過去ログ12)
(過去ログ13)
(過去ログ14)
(過去ログ15)
(過去ログ16)
(過去ログ17)
(過去ログ18)
(過去ログ19)
(過去ログ20)
(過去ログ21)
(過去ログ22)
(過去ログ23)
(過去ログ24)
(過去ログ25)
(過去ログ26)
(過去ログ27)
(過去ログ28)
(過去ログ29)
(過去ログ30)
(過去ログ31)
(過去ログ32)
(過去ログ33)
(過去ログ34)
(過去ログ35)
(過去ログ36)
(過去ログ37)
(過去ログ38)
(過去ログ39)
(過去ログ40)
(過去ログ41)
(過去ログ42)
(過去ログ43)
(過去ログ44)
(過去ログ45)
(過去ログ46)
(過去ログ47)
(過去ログ48)
(過去ログ49)
(過去ログ50)
(過去ログ51)
(過去ログ52)
(過去ログ53)
(過去ログ54)
(過去ログ55)
(過去ログ56)
(過去ログ57)
(過去ログ58)
(過去ログ59)
(過去ログ60)
(過去ログ61)
(過去ログ62)
(過去ログ63)
(過去ログ64)
(過去ログ65)
(過去ログ66)
(過去ログ67)
(過去ログ68)
(過去ログ69)
(過去ログ70)
(過去ログ71)
(過去ログ72)
(過去ログ73)
(過去ログ74)
(過去ログ75)
(過去ログ76)
(過去ログ77)
(過去ログ78)
(過去ログ79)
(過去ログ80)
(過去ログ81)
(過去ログ82)
(過去ログ83)
(過去ログ84)
(過去ログ85)
(過去ログ86)
(過去ログ87)
(過去ログ88)
(過去ログ89)
(過去ログ90)
(過去ログ91)
(過去ログ92)
(過去ログ93)
(過去ログ94)
(過去ログ95)
(過去ログ96)
(過去ログ97)
(過去ログ98)
(過去ログ99)
(過去ログ100)
(過去ログ101)
(過去ログ102)
(過去ログ103)
(過去ログ104)
(過去ログ105)
(過去ログ106)
(過去ログ107)
(過去ログ108)
(過去ログ109)
(過去ログ110)
(過去ログ111)
(過去ログ112)
(過去ログ113)
(過去ログ114)
(過去ログ115)
(過去ログ116)
(過去ログ117)
(過去ログ118)
(過去ログ119)
(過去ログ120)
(過去ログ121)
(過去ログ122)
(過去ログ123)
(過去ログ124)
(過去ログ125)
(過去ログ126)
(過去ログ127)
(過去ログ128)
(過去ログ129)
(過去ログ130)
(過去ログ131)
(過去ログ132)
(過去ログ133)
(過去ログ134)
(過去ログ135)
(過去ログ136)
(過去ログ137)
(過去ログ138)
(過去ログ139)
(過去ログ140)
(過去ログ141)
(過去ログ142)
(過去ログ143)
(過去ログ144)
(過去ログ145)
(過去ログ146)
(過去ログ147)
(過去ログ148)
(過去ログ149)
(過去ログ150)
(過去ログ151)
(過去ログ152)
(過去ログ153)
(過去ログ154)
(過去ログ155)
(過去ログ156)
(過去ログ157)
(過去ログ158)
(過去ログ159)
(過去ログ160)
(過去ログ161)
(過去ログ162)
(過去ログ163)
(過去ログ164)
(過去ログ165)
(過去ログ166)
(過去ログ167)
(過去ログ168)
(過去ログ169)
(過去ログ170)
(過去ログ171)
(過去ログ172)
(過去ログ173)
(過去ログ174)
(過去ログ175)
(過去ログ176)
(過去ログ177)
(過去ログ178)
(過去ログ179)
強調表示
/
ON
(自動リンクOFF)
結果表示件数
/
20件
30件
40件
50件
100件
記事No検索
/
ON
大文字と小文字を区別する
No.101584 の関連記事表示
ヒット / 14件
(1-14 を表示)
<<
0
>>
■101584
サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HON -
(2023/03/17(Fri) 13:54:43)
分類:[.NET 全般]
こんにちは。
超初心者です。
VisualStudio 2022を用いてクライアントサーバアプリを作成しております。
クライアント側:VB.net コンソールアプリケーション(.netFramework)
サーバー側:C# MVCコントローラ(.NET6.0)
クライアント側からサーバに対してhttpでファイルをアップロードして、アップロードしたファイルに対してさらにバッチ処理を行います。
クライアント端末でコマンドラインからアプリを実行 引数にアップロードファイルパスとサーバ上で実行するバッチファイルのパスを指定
サーバサイドアプリでアップロードされたファイルを保存 バッチファイルを実行
という流れです。
現在困っているのが、サーバサイドのアプリにてバッチを実行する際に管理者権限で行う必要がありますが、
どうしてもアクセスが拒否されてしまいます。
process.StartInfo.Verb = "RunAs";
を記述しておりますが、結果は変わりません。
ちなみに管理者権限が必要ないバッチファイルをテストとして作成して引数に指定すると問題なく実行できるため、
あとは管理者権限で実行できるかどうかというところまでにはなっています。
有識者の方ご助力いただけませんでしょうか。
よろしくお願いいたします。
親記事 /過去ログ177より /
関連記事表示
削除チェック/
■101585
Re[1]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ WebSurfer -
(2023/03/17(Fri) 14:19:29)
■
No101584
(HON さん) に返信
> サーバー側:C# MVCコントローラ(.NET6.0)
ホスティングモデルはどうなっているんですか?
Linux 系の OS の場合は、Nginx とか Apache をリバースプロキシに使って、Kestrel
で ASP.NET Core アプリをホストするということになるはずです。
Windows OS で IIS 上でで動かしているとすると、「インプロセス ホスティング」と
「アウトプロセス ホスティング」という 2 つのモデルがあります。
参考:
ASP.NET Core アプリの Web サーバー
http://surferonwww.info/BlogEngine/post/2020/06/29/web-server-used-in-aspnet-core-application.aspx
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101586
Re[2]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HON -
(2023/03/17(Fri) 14:23:16)
■
No101585
(WebSurfer さん) に返信
> ■
No101584
(HON さん) に返信
>
>>サーバー側:C# MVCコントローラ(.NET6.0)
>
> ホスティングモデルはどうなっているんですか?
>
> Linux 系の OS の場合は、Nginx とか Apache をリバースプロキシに使って、Kestrel
> で ASP.NET Core アプリをホストするということになるはずです。
>
> Windows OS で IIS 上でで動かしているとすると、「インプロセス ホスティング」と
> 「アウトプロセス ホスティング」という 2 つのモデルがあります。
>
> 参考:
> ASP.NET Core アプリの Web サーバー
>
http://surferonwww.info/BlogEngine/post/2020/06/29/web-server-used-in-aspnet-core-application.aspx
>
>
ありがとうございます。
説明不足ですみません。
サーバサイドはIISのインプロセスホスティングかと思います。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101588
Re[3]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ WebSurfer -
(2023/03/17(Fri) 16:15:36)
■
No101586
(HON さん) に返信
無駄に全文を引用するのは止めてください。以下のように必要な部分のみに
とどめてください。
> 現在困っているのが、サーバサイドのアプリにてバッチを実行する際に管理者
> 権限で行う必要がありますが、どうしてもアクセスが拒否されてしまいます。
> サーバサイドはIISのインプロセスホスティングかと思います。
ASP.NET は IIS のワーカープロセスで動きますが、ワーカープロセスはデフォ
ルトで「アプリケーションプール ID」になり、権限は低いものになります。
アプリケーション プール ID
https://technet.microsoft.com/ja-jp/library/ee886292.aspx
また、デフォルトのワーカープロセスには Process.Start でプロセスを起動する
権限がありません。
権限が低いのはセキュリティ上の理由です。
ワーカープロセスに管理者権限を与えるばどということはやりすぎですので、管
理者権限を与えなくて済むようにやり方を考え直すことをお勧めします。
例えば、特定のフォルダのファイルの読み書きだけできればいいなら、ワーカー
プロセスにそのフォルダだけに対する読み書き権限を与えるだけにとどめるとか。
どうしてもと言うなら、以下の記事に書いてあるようにして、プロセスモデルの
ID に必要な管理者権限を持つユーザーアカウントを設定することは可能ですが、
お勧めできません。
ユーザー対話モード
http://surferonwww.info/BlogEngine/post/2022/09/18/user-interactive-mode.aspx
ただし、そうした場合でも、上音記事にも書いてある通りプロセスはユーザー対
話モードで実行されないので、グラフィカル UI を使用すると例外がスローされ
ます。
そこは何ともなりませんので、グラフィカル UI を使わないように考える他ない
と思います。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101592
Re[4]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HON -
(2023/03/17(Fri) 17:43:38)
■
No101588
(WebSurfer さん) に返信
> ■
No101586
(HON さん) に返信
>
> 例えば、特定のフォルダのファイルの読み書きだけできればいいなら、ワーカー
> プロセスにそのフォルダだけに対する読み書き権限を与えるだけにとどめるとか。
→フォルダとバッチに対してワーカープロセスのユーザの権限をあててみましたがうまくいきませんでした。
もう少し調べてみます。ありがとうございました。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101593
Re[5]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ WebSurfer -
(2023/03/17(Fri) 17:53:47)
■
No101592
(HON さん) に返信
> →フォルダとバッチに対してワーカープロセスのユーザの権限をあててみましたがうまくいきませんでした。
その「バッチ」で何をしたいのかを具体的に書くことはできませんか?
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101595
Re[6]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HattariB -
(2023/03/18(Sat) 10:44:16)
■
No101593
(WebSurfer さん) に返信
> その「バッチ」で何をしたいのかを具体的に書くことはできませんか?
横槍失礼。
管理者権限を突破して、その先で何か実行させようとする行為について、
具体的に衆目に晒すという事は、
悪意みたいなもんに具体性を与えて、第三者に閲覧される可能性があるとおもうので、
このへんでお開きにするのがよろしいかと。
質問者さんも終わりたがってるようだし。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101596
Re[7]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ WebSurfer -
(2023/03/18(Sat) 11:35:32)
■
No101595
(HattariB さん) に返信
> 管理者権限を突破して、その先で何か実行させようとする行為について、
> 具体的に衆目に晒すという事は、
> 悪意みたいなもんに具体性を与えて、第三者に閲覧される可能性があるとおもうので、
> このへんでお開きにするのがよろしいかと。
どう考えると「管理者権限を突破」とか「悪意みたいなもんに具体性を与えて」といういう
話になるのですか?
ASP.NET Web アプリで権限の問題で必要な処理ができないということは良くある話です。例
えばアップロードしたファイルをサーバーで保存するというような操作でさえ、デフォルト
のワーカープロセスでは権限が低くでできないのですよ。
管理者権限を与えるケースもないわけではないのですよ。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101597
Re[8]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HattariB -
(2023/03/18(Sat) 15:37:03)
■
No101596
(WebSurfer さん) に返信
> どう考えると「管理者権限を突破」とか「悪意みたいなもんに具体性を与えて」といういう
> 話になるのですか?
正しい管理者権限を持っているなら、クライアントから実行させた際に、サーバー側にもその権限を
移譲できるんじゃ無いすか?
サーバーサイドで動作するバッチファイルが、それを実行させたプロセスから離れているので
管理者権限が消えてるんじゃぁ無いすか?
もしくはアクセスしたセッションそのものに管理者権限がなかったんじゃぁ無いの?
httpプロトコルではなく、httpsプロトコルだったら管理者権限が消える事は無いと思うんだけど、
サーバーサイドで起動したバッチに管理者権限が必要だという事は、
アクセスしたセッションが管理者では無いという事だと思ったんですよ。
だから、httpで、管理者権限無しでアクセスして、管理者が実行できないバッチファイルが、実行できない事は、
セキュリティが動いているという事で、「そのセキュリティを突破するにはどうしたら?」という
主旨だと読んだんですよ。わたしわ。
> 管理者権限を与えるケースもないわけではないのですよ。
そうか。IISではhttpプロトコルに対しても任意に管理者権限を与える事が出来るのか。
・・・・まずくないすか?
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101599
Re[9]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ WebSurfer -
(2023/03/18(Sat) 17:07:54)
■
No101597
(HattariB さん) に返信
> 正しい管理者権限を持っているなら、クライアントから実行させた際に、サーバー側にもその権限を
> 移譲できるんじゃ無いすか?
クライアントが管理者権限を持っていて、Web アプリのプロセスもその権限で動くと言ってます?
Active Directory ドメイン環境で Windows 統合認証を利用してシングルサインオンが実現されて
いて、偽装・委任が設定されているとかでなければそういうことはあり得ません。
今回の件は、コンソールアプリから ASP.NET MVC にファイルをアップロードするという話で、コ
ンソールアプリのユーザーの権限と Web サーバー上での Web アプリのプロセスの権限は違うも
のです。
> サーバーサイドで動作するバッチファイルが、それを実行させたプロセスから離れているので
> 管理者権限が消えてるんじゃぁ無いすか?
違います。
今回の件では、バッチファイルは Web アプリのプロセスが起動するという話のはずです。
Web アプリのデフォルトのプロセスの権限が低いから、起動したバッチファイルが必要な処置が
できないという話です。権限が消えたわけではなくて、最初から必要な権限がないのです。
> もしくはアクセスしたセッションそのものに管理者権限がなかったんじゃぁ無いの?
意味不明です。「アクセスしたセッション」って何ですか?
Web アプリのプロセスの権限は、偽装・委任という設定をしてない限り、デフォルトでは常に
「アプリケーションプール ID」という権限が低いものになります。
> httpプロトコルではなく、httpsプロトコルだったら管理者権限が消える事は無いと思うんだけど、
それも意味不明です。Web アプリのデフォルトのプロセスの権限と http / https には何の
関係もありません。上に述べた偽装・委任とかをしていても http / https とは関係ないの
は同じです。
> サーバーサイドで起動したバッチに管理者権限が必要だという事は、
> アクセスしたセッションが管理者では無いという事だと思ったんですよ。
ここも意味不明ですが、何にせよ上に述べた通り、デフォルトでは常に「アプリケーションプー
ル ID」という権限が低いものになります。
> だから、httpで、管理者権限無しでアクセスして、管理者が実行できないバッチファイルが、実行できない事は、
> セキュリティが動いているという事で、「そのセキュリティを突破するにはどうしたら?」という
> 主旨だと読んだんですよ。わたしわ。
たとえば、クライアントから受け取ったファイルをサーバーのどこかフォルダに保存するだけで
もデフォルトの「アプリケーションプール ID」ではできないのですよ。書き込み権限がないから。
そういう場合は「そのセキュリティを突破するにはどうしたら?」という話ではなくて、Web ア
プリが要件を満たすための処置を行うために必要な権限を与えるという話になるのですよ。
>>管理者権限を与えるケースもないわけではないのですよ。
> そうか。IISではhttpプロトコルに対しても任意に管理者権限を与える事が出来るのか。
http / https 何も関係ないです。
> ・・・・まずくないすか?
Web アプリが要件を満たすための処置を行うために必要な権限を与えるということであれば何も
まずくはないです。
もちろん権限を与えればリスクは増えますので、必要最低限ということになると思いますが。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101600
Re[10]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HattariB -
(2023/03/18(Sat) 17:50:58)
■
No101599
(WebSurfer さん) に返信
返信ありがとうございます。
オイラの勉強不足を自分自身で痛感できたので、
ここは礼を申し述べるしかありません。
ありがとうございました。
> デフォルトの「アプリケーションプール ID」ではできないのですよ。書き込み権限がないから。
でも保存はできて、そのあとのバッチ実行が出来ないっておっしゃって無いですか?
書き込み権限が無いとしたら、保存すらできないですよね。
という事は、アプリケーションプールIDというレベルの話ではないのではないですか?
> アプリが要件を満たすための処置を行うために必要な権限を与えるという話になるのですよ。
なるほど。だから必要な権限を判断するために、具体的な用途を問い合わせたわけですね。
まぢで横槍失礼しました。ごめんなさい。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101601
Re[11]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ WebSurfer -
(2023/03/18(Sat) 19:10:12)
■
No101600
(HattariB さん) に返信
>>デフォルトの「アプリケーションプール ID」ではできないのですよ。書き込み権限がないから。
> でも保存はできて、そのあとのバッチ実行が出来ないっておっしゃって無いですか?
> 書き込み権限が無いとしたら、保存すらできないですよね。
保存はできないです。Process.Start もできないので、多分質問者さんの「バッチ」とやらも
動かないと思うのですが、最初の質問に管理者権限が必要なければ動いたという話があるので
なんだかよくわかりませんが。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101602
Re[12]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HattariB -
(2023/03/18(Sat) 20:20:21)
■
No101601
(WebSurfer さん) に返信
>管理者権限が必要なければ動いたという話があるのでなんだかよくわかりませんが。
$ chmod 764
ではなく、
# chmod 777を、
エラー無く適用させたいから、root権限取る方法を教えてくれ
みたいな質問に思えたので、オイラもよくわかんないや。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
■101598
Re[9]: サーバサイドでの管理者権限でのアプリ実行
□投稿者/ HattariB -
(2023/03/18(Sat) 16:06:05)
ちなみに、HTTPSを引き合いに出したのは、暗号化云々ではなくて、
SSL証明書のやり取りが出来てるかどうかについて着目してたからです。
SSL証明書のやり取りが出来てない鯖蔵で、管理者権限でのやり取りが行われて良いのかは非常に疑問に思ってる。
記事No.101584 のレス /過去ログ177より /
関連記事表示
削除チェック/
<<
0
>>
パスワード/
-
Child Tree
-