C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: Importディレクティブでコンパイルエラー(CS023)


(過去ログ 137 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■80402 / inTopicNo.1)  Importディレクティブでコンパイルエラー(CS023)
  
□投稿者/ Sasaki (1回)-(2016/07/14(Thu) 21:13:53)

分類:[ASP.NET (C#)] 

はじめて質問させていただきます。
ASP.netにて、ActiveDirectoryを利用したいのですが、コンパイルエラーを解消できずに困っています。
C#のWebフォームで、System.DirectoryServicesをインポートすると、次のエラーメッセージが表示されます。
	'/' アプリケーションでサーバー エラーが発生しました。
	コンパイル エラー メッセージ: CS0234: The type or namespace name 'DirectoryServices' does not exist in the namespace 'System' (are you missing an assembly reference?)
	バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.6.1073.0 

Webフォームからは.NetFrameworkのDirectoryServicesを利用することはできないものなのでしょうか?
以下に、最小のサンプルを記載いたします。

・ファイル名:WebForm1.aspx
------------------ ここから
	<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
	<%@ Import Namespace="System.DirectoryServices" %>  <!-- ←この一行を追加しました。 -->

	<!DOCTYPE html>

	<html xmlns="http://www.w3.org/1999/xhtml">
	<head runat="server">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	    <title>テストページ</title>
	</head>
	<body>
	    <form id="form1" runat="server">
	    <div>
	    </div>
	    </form>
	</body>
	</html>
------------------ ここまで

なお以下の手順でプロジェクトを作成しました。
	1.メニューより新しいプロジェクト[テンプレート / Visual C# / Web / Empty]を選択。
	2.参照の追加メニューより、[System.DirectoryServices Version4.0.0.0]を追加。
	3.ソリューションエクスプローラより、新しい項目[Web / Webフォーム]を追加
	4.追加された[WebForm1.aspx]の2行目に、<%@ Import Namespace="System.DirectoryServices" %>を追記。
	5.[F5]キー押下にてデバッグ実行を実施

	参照を追加した[System.DirectoryServices]のパスは以下で、
		C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.DirectoryServices.dll
	実在していました。

以上、アドバイスいただけると、助かります。



実行環境は、以下です。
	OS: Windows10
	IDE: Microsft VisualStudio Express 2015 for Web
	Browser: Internet Explorer11

記事検索にて、検索したキーワードは、以下です。
	CS0234
	DirectoryServices
	ASP

引用返信 編集キー/
■80403 / inTopicNo.2)  Re[1]: Importディレクティブでコンパイルエラー(CS023)
□投稿者/ WebSurfer (963回)-(2016/07/14(Thu) 21:52:19)
No80402 (Sasaki さん) に返信

> ASP.netにて、ActiveDirectoryを利用したいのですが、

どういう意味でしょうか? 以下のようなユーザー認証に AD のユーザー情報を使いたい
という話ですか?

ASP.NET からの Active Directory ドメイン サービス認証
https://msdn.microsoft.com/ja-jp/library/ms180890.aspx

セキュリティ保護された ASP.NET アプリケーションの構築 : 認証、認定、
および通信のセキュリティ保護 Active Directory でフォーム認証を使用する方法
https://msdn.microsoft.com/ja-jp/library/cc465526.aspx
引用返信 編集キー/
■80404 / inTopicNo.3)  Re[2]: Importディレクティブでコンパイルエラー(CS023)
□投稿者/ Sasaki (2回)-(2016/07/14(Thu) 23:10:02)
返信、ありがとうございます。
Webアプリ(イントラネット)から、Active Derectory内の指定したユーザーのパスワードを変更できるようにしたく、質問いたしました。
C#コンソールアプリであれば、LDAPパス、WindowsユーザーID(sAMAccountName)、現行パスワード、新パスワード情報より、
ActiveDirectoryの指定したユーザーのパスワードを変更できることが分かったのですが、ASP.netではコンパイルできませんでした。

>>ASP.netにて、ActiveDirectoryを利用したいのですが、
> どういう意味でしょうか? 以下のようなユーザー認証に AD のユーザー情報を使いたいという話ですか?
> ASP.NET からの Active Directory ドメイン サービス認証
> https://msdn.microsoft.com/ja-jp/library/ms180890.aspx
はい、教えていただいたURLの記載にあるように、[System.DirectoryServices]を使いたく、お聞きしております。
規模的に大きくないことから、*.csファイルは利用せずに、1、2枚のASPファイルのみで、作りこもうと考えていました。
*.aspxファイルをIISの仮想ディレクトリに置くだけで(未調査ですが意図的なビルドなしに、)、利用できるかもしれないことも狙っています。

引用返信 編集キー/
■80405 / inTopicNo.4)  Re[3]: Importディレクティブでコンパイルエラー(CS023)
□投稿者/ Sasaki (3回)-(2016/07/14(Thu) 23:14:47)
>>> Webアプリ(イントラネット)から、Active Derectory内の指定したユーザーのパスワードを変更できるようにしたく、質問いたしました。
の「Webアプリ(イントラネット)」とは、ブラウザのことです。
失礼しました。
正)
Browserから、Active Derectory内の指定したユーザーのパスワードを変更できるようにしたく、質問いたしました。

よろしくお願いします。

引用返信 編集キー/
■80409 / inTopicNo.5)  Re[3]: Importディレクティブでコンパイルエラー(CS023)
□投稿者/ WebSurfer (964回)-(2016/07/15(Fri) 11:31:49)
No80404 (Sasaki さん) に返信

> <%@ Import Namespace="System.DirectoryServices" %> <!-- ←この一行を追加しました。 -->

そこではダメなようです。自分でもやって見ましたが、参照設定をきちんとしても実行すると質
問者さんと同じエラーになります。(理由は調べてません)

コードを見ると Web アプリケーションプロジェクトで、コードビハインドの C# ソースのファイ
ルが .aspx とは別の WebForm1.aspx.cs にあると思いますが、DirectoryServices 関係のコード
を書くのは WebForm1.aspx.cs の方なので、そちらに using System.DirectoryServices; として
からコードを書けば、少なくともコンパイルエラーは回避できると思います。

コンパイルできても、実際に、

> Webアプリ(イントラネット)から、Active Derectory内の指定したユーザーのパスワードを変更

ができるかどうかは分かりませんが(ワーカープロセスのアクセス権の問題などで)、まずはコン
パイルできるところまで進めてみてください。
引用返信 編集キー/
■80414 / inTopicNo.6)  Re[4]: Importディレクティブでコンパイルエラー(CS023)
□投稿者/ Sasaki (6回)-(2016/07/15(Fri) 18:09:53)
> コードを見ると Web アプリケーションプロジェクトで、コードビハインドの C# ソースのファイ
> ルが .aspx とは別の WebForm1.aspx.cs にあると思いますが、DirectoryServices 関係のコード
> を書くのは WebForm1.aspx.cs の方なので、そちらに using System.DirectoryServices; として
> からコードを書けば、少なくともコンパイルエラーは回避できると思います。

コンパイルエラーを回避することができました。ありがとうございます。
WebForm1.aspxのPageディレクティブを以下のようにすることで、C#ソースからSystem.DirectoryServicesを利用することができるようになりました。
<%@ PAGE LANGUAGE="C#" Inherits="WebApplication1.WebForm1" CodeBehind="WebForm1.aspx.cs" %>

*.aspxファイルだけで作りこむことは一旦やめ、先に進んでみます。
ありがとうございました。

解決済み
引用返信 編集キー/
■80415 / inTopicNo.7)  Re[5]: Importディレクティブでコンパイルエラー(CS023)
□投稿者/ WebSurfer (966回)-(2016/07/15(Fri) 22:56:23)
No80414 (Sasaki さん) に返信

大きな勘違いがあるような気がします。

> *.aspxファイルだけで作りこむことは一旦やめ、先に進んでみます。

質問者さん使っている Web アプリケーションプロジェクトで作っている限り、Page ←
.aspx.cs ← .aspx という継承関係で C# のコードは別ファイル .aspx.cs にならざる
を得ないです。

そして、

> *.aspxファイルをIISの仮想ディレクトリに置くだけで(未調査ですが意図的なビルド
> なしに、)、利用できるかもしれないことも狙っています。

が目的であれば、それは Visual Studio でコンパイルしてから運用環境にデプロイしな
ければならない Web アプリケーションプロジェクトでは実現できません。

Web アプリケーションプロジェクトと Web サイトプロジェクトの違いは分かりますか?
分からなければ以下の記事を読んでください。

Web アプリケーション プロジェクトと Web サイト プロジェクト
https://msdn.microsoft.com/ja-jp/library/dd547590(v=vs.100).aspx

Web サイトプロジェクトで作った場合は、上の記事のも書いてあるように、ソースをそ
のまま運用環境にアップすれば、サーバー側で動的にコンパイルしてくれます。

Web サイトプロジェクトの場合、テンプレートで Web フォームを作る際、[別のファイ
ルにコードを書き込む(P)]にチェックを入れるか否かで選択肢は 2 つあって、チェッ
クを入れない場合は .aspx ファイルに C# のコードを書くことができます。

チェックを入れれば C# のコードは別ファイルの .aspx.cs に書くことになります。

でも、Web サイトプロジェクトの場合、ソースをそのまま運用環境にアップしてサーバー
側で動的にコンパイルするのは、C# のコードを .aspx ファイルに入れても、別のファイ
ル .aspx.cs ファイルに入れても同じですよ。
引用返信 編集キー/
■80417 / inTopicNo.8)  Re[6]: Importディレクティブでコンパイルエラー(CS023)
□投稿者/ Sasaki (7回)-(2016/07/16(Sat) 00:48:31)
2016/07/17(Sun) 09:20:37 編集(投稿者)
2016/07/17(Sun) 09:20:31 編集(投稿者)

> Web アプリケーションプロジェクトと Web サイトプロジェクトの違いは分かりますか?
> 分からなければ以下の記事を読んでください。
> Web アプリケーション プロジェクトと Web サイト プロジェクト
> https://msdn.microsoft.com/ja-jp/library/dd547590(v=vs.100).aspx
ありがとうございます。
ちょっと私には難しかったですが、Webサイトプロジェクトでは動的にコンパイルしてくれることわかりました。

> Web サイトプロジェクトで作った場合は、上の記事のも書いてあるように、ソースをそ
> のまま運用環境にアップすれば、サーバー側で動的にコンパイルしてくれます。
> でも、Web サイトプロジェクトの場合、ソースをそのまま運用環境にアップしてサーバー
> 側で動的にコンパイルするのは、C# のコードを .aspx ファイルに入れても、別のファイ
> ル .aspx.cs ファイルに入れても同じですよ。
今回は、成果物をそのまま、コピーするだけで、利用できることも目的としています。
この場合は、Webサイトプロジェクトでプロジェクトを作成しなければならないことわかりました。
ありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -