2017年6月2日 星期五
2017年5月28日 星期日
解除Windows遠端連線,登入失敗:使用者帳戶限制。可能原因為不允許空的密碼,登入時數限制,或強制的原則限制。
有時因距離與時間問題,需要用Windows遠端連線,而在連線後,
於登入畫面,輸入了帳號、密碼,卻出現:
登入失敗:使用者帳戶限制。可能原因為不允許空的密碼,登入時數限制,或強制的原則限制。
找到以下方式解除方式,得以順利運行遠端連線問題。
方法1
1. [開始]>[執行]>輸入 gpedit.msc> [確定]>啟動 [群組原則編輯器]。
2. [電腦設定]>[Windows 設定]>[安全性設定]>[本機原則]>[安全性選項]> [帳戶:限制使用空白密碼的本機帳戶僅能登入到主控台]。
3. 按兩下 [限制使用空白密碼的本機帳戶僅能登入到主控台]。
4. 按一下 [已停用],再按 [確定]。
5. 結束 [群組原則編輯器]。
方法2
於登入畫面,輸入了帳號、密碼,卻出現:
登入失敗:使用者帳戶限制。可能原因為不允許空的密碼,登入時數限制,或強制的原則限制。
找到以下方式解除方式,得以順利運行遠端連線問題。
方法1
1. [開始]>[執行]>輸入 gpedit.msc> [確定]>啟動 [群組原則編輯器]。
2. [電腦設定]>[Windows 設定]>[安全性設定]>[本機原則]>[安全性選項]> [帳戶:限制使用空白密碼的本機帳戶僅能登入到主控台]。
3. 按兩下 [限制使用空白密碼的本機帳戶僅能登入到主控台]。
4. 按一下 [已停用],再按 [確定]。
5. 結束 [群組原則編輯器]。
方法2
到『控制台』=>『系統管理工具』=>『本機安全性原則』
2017年5月25日 星期四
Win 10 "啟動"資料夾的位置在那裏?
Win 10 "啟動"資料夾的位置在那裏?
Win 10 "啟動"資料夾的位置在那裏?
方法一:
系統[啟動]資料夾的位置
X:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
X:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
個人[啟動]資料夾的位置
X:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
X:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
方法二:
打開[執行],輸入開啟啟動資料夾的命令
系統啟動資料夾
shell:Common Startup
shell:Common Startup
個人啟動資料夾
shell:startup
shell:startup
2015年6月25日 星期四
CMD 參數
CMD :啟動 Windows 命令直譯器新例項。
指令詳解:
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] string]
/C 執行字串中所描述的命令然後結束命令視窗
/K 執行 字串中所描述的命令然後保留命令視窗
/S 修改字串在 /C 或 /K (參看下方)
/Q 關閉 echo
/D 從登錄中停用 AutoRun 命令(參看下方)
/A 將內部命令輸出結果以 ANSI 格式導向 pipe 或檔案
/U 將內部命令輸出結果以 Unicode 格式導向 pipe 或檔案
/T:fg 設定幕前/幕後色彩 (參看 COLOR /?)
/E:ON 啟用命令延伸 (參看下方)
/E:OFF 停用命令延伸 (參看下方)
/F:ON 啟用檔案及目錄名稱完整字元(參看下方)
/F:OFF 停用檔案及目錄名稱完整字元(參看下方)
/V:ON 啟用延遲環境變數延伸,用 c 作為分隔字元。
例如,/V:ON 可以讓 !var! 在執行時展開變數 var。
文法 var 則會在輸入時展開變數,這在 FOR 迴圈之中是完全不同的事。
/V:OFF 停用延遲環境變數展開
請注意用命令分隔字元 '&&' 隔開的多個命令如果被引號包含時則會被當成字串來接受。
此外,為了相容性的原因,/X 的作用與 /E:ON 相同;/Y 與 /E:OFF 相同且 /R 與 /C 相同。
其餘的參數則會被忽略。
如果指定了/C 或 /K,則在參數後的其餘命令列會被當成命令列來處理,
其中使用下面的邏輯來處理引號字元 (") :
1. 如果所有下列條件都符合,那麼命令列上的引號會被保留:
- 沒有 /S 參數
- 正好有兩個引號
- 在兩個引號之間沒有下列特殊字元: &<>()@^|
- 兩個引號之間有一些空格
- 在兩個引號之間的字串是執行檔的檔案名稱。
2. 否則,舊的行為是如果第一個字元是引號,會把前置字元去掉,
並將命令列中第一個引號及最後一個引號之間的所有文字便成保留文字。
如果您在命令列中未指定 /D,當 CMD.EXE 起動後,它會尋找下列 REG_SZ/REG_EXPAND_SZ的 登錄變數。
如果有一個存在或兩個都存在,命令會執行第一個變數。
HKEY_LOCAL_MACHINE\Software\Microsoft\CommandProcessor\AutoRun
及/或
HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor\AutoRun
將命令擴充功能預設成啟用狀態。您可以在特定的呼叫中,用 /E:OFF 參數來停用擴充功能。
您可以啟用或停用一台電腦上或使用者登入工作階段中所有CMD.EXE 呼叫的擴充功能,如果您要這樣作,請使用 REGEDT32.EXE 來設定以下的 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
及/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
到 0x1 或 0x0。使用者指定設定的執行優先順序高於電腦上的設定。命令列參數的執行優先順序高於登錄中的設定值。
擴充命令包括下列命令的變更及(或)新增:
DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (也包括援用外部命令之變更)
ASSOC
FTYPE
請鍵入 HELP 命令名稱,以查閱說明。
預設狀態下,不會啟用延遲環境變數擴充。
您可以使用 /V:ON 或 /V:OFF 參數在執行 CMD.EXE 時啟用或停用完整檔案名稱。
您也可以用 REGEDT32.EXE 來修改以下 REG_DWORD 值,來啟用或停用整個電腦上
或使用者登入工作階段中所有 CMD.EXE 的檔案名稱完整功能:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion
及/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion
其值可為 0x1 或 0x0。使用者指定設定的優先順序高於電腦設定。命令列參數優先順序高於登錄設定值。
如果已啟用延遲環境變數擴充,驚嘆號字元會在執行時被用來取代環境變數值。
預設無法啟用檔案和目錄名稱完成。
您可以為特定的 CMD.EXE 呼叫,以 /F:ON 或 /F:OFF 開關啟用或停用檔案名稱完成。
您可以啟用或停用在同一部電腦上所有 CMD.EXE 的呼叫完成及/或使用者登入工作階段。
方法是使用 REGEDT32.EXE 設定其一或兩者登錄中的 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar
及/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
用於特定功能的控制字元十六進位值 (例如 0x4 是 Ctrl-D ; 0x6 是Ctrl-F)。
使用者指定設定的執行優先順序高於電腦上的設定。
命令列參數的執行優先順序高於登錄中的設定值。
如果以 /F:ON 開關啟用完成,則用於目錄名稱完成的控制字元是 Ctrl-D而用於檔案名稱完成的控制字元是 Ctrl-F。
如果您要停用在登錄中的特定完成字元,請使用空間值 (0x20),因為它不是正確的控制字元。
當您鍵入其中一個控制字元後,完成功能會被啟動。
如果路徑字串已存在,而且所建立的路徑清單也符合的話,完成函數會讀取到指標所在左方為止的路徑字串。
然後它會顯示第一個符合的路徑。
如果找不到符合的路徑,它會發出嗶聲並保留顯示。
如果您重覆按相同的控制字元,它將在符合的路徑清單中循環執行。
如果您同時按下 Shift 鍵與控制字元,可在清單中反向移動。
如果您進行編輯後再按控制字元的話,已儲存的符合路徑清單會被丟棄,並建立新的清單。
如果您在檔案及目錄完成功能之間切換,會有同樣的情況發生。
這兩個控制字元不同之處是 : 檔案完成字元可同時對應檔案及目錄名稱,而目錄完成字元只能對應目錄名稱。
如果您將檔案完成功能用在內建目錄命令上 (CD,MD 或 RD) 也等於使用了目錄完成功能。
如果您在路徑字串兩端加上引號,完成功能鍵就可正確處理包含空格或其他特殊字元的檔案名稱。
還有,如果您備份後,又在命令列中呼叫完成功能的話,已呼叫過完成功能的指標右方的文字會被丟棄。
要求加上引號的特殊字元有:
&()[]{}^=;!'+,`~
指令詳解:
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] string]
/C 執行字串中所描述的命令然後結束命令視窗
/K 執行 字串中所描述的命令然後保留命令視窗
/S 修改字串在 /C 或 /K (參看下方)
/Q 關閉 echo
/D 從登錄中停用 AutoRun 命令(參看下方)
/A 將內部命令輸出結果以 ANSI 格式導向 pipe 或檔案
/U 將內部命令輸出結果以 Unicode 格式導向 pipe 或檔案
/T:fg 設定幕前/幕後色彩 (參看 COLOR /?)
/E:ON 啟用命令延伸 (參看下方)
/E:OFF 停用命令延伸 (參看下方)
/F:ON 啟用檔案及目錄名稱完整字元(參看下方)
/F:OFF 停用檔案及目錄名稱完整字元(參看下方)
/V:ON 啟用延遲環境變數延伸,用 c 作為分隔字元。
例如,/V:ON 可以讓 !var! 在執行時展開變數 var。
文法 var 則會在輸入時展開變數,這在 FOR 迴圈之中是完全不同的事。
/V:OFF 停用延遲環境變數展開
請注意用命令分隔字元 '&&' 隔開的多個命令如果被引號包含時則會被當成字串來接受。
此外,為了相容性的原因,/X 的作用與 /E:ON 相同;/Y 與 /E:OFF 相同且 /R 與 /C 相同。
其餘的參數則會被忽略。
如果指定了/C 或 /K,則在參數後的其餘命令列會被當成命令列來處理,
其中使用下面的邏輯來處理引號字元 (") :
1. 如果所有下列條件都符合,那麼命令列上的引號會被保留:
- 沒有 /S 參數
- 正好有兩個引號
- 在兩個引號之間沒有下列特殊字元: &<>()@^|
- 兩個引號之間有一些空格
- 在兩個引號之間的字串是執行檔的檔案名稱。
2. 否則,舊的行為是如果第一個字元是引號,會把前置字元去掉,
並將命令列中第一個引號及最後一個引號之間的所有文字便成保留文字。
如果您在命令列中未指定 /D,當 CMD.EXE 起動後,它會尋找下列 REG_SZ/REG_EXPAND_SZ的 登錄變數。
如果有一個存在或兩個都存在,命令會執行第一個變數。
HKEY_LOCAL_MACHINE\Software\Microsoft\CommandProcessor\AutoRun
及/或
HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor\AutoRun
將命令擴充功能預設成啟用狀態。您可以在特定的呼叫中,用 /E:OFF 參數來停用擴充功能。
您可以啟用或停用一台電腦上或使用者登入工作階段中所有CMD.EXE 呼叫的擴充功能,如果您要這樣作,請使用 REGEDT32.EXE 來設定以下的 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
及/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
到 0x1 或 0x0。使用者指定設定的執行優先順序高於電腦上的設定。命令列參數的執行優先順序高於登錄中的設定值。
擴充命令包括下列命令的變更及(或)新增:
DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (也包括援用外部命令之變更)
ASSOC
FTYPE
請鍵入 HELP 命令名稱,以查閱說明。
預設狀態下,不會啟用延遲環境變數擴充。
您可以使用 /V:ON 或 /V:OFF 參數在執行 CMD.EXE 時啟用或停用完整檔案名稱。
您也可以用 REGEDT32.EXE 來修改以下 REG_DWORD 值,來啟用或停用整個電腦上
或使用者登入工作階段中所有 CMD.EXE 的檔案名稱完整功能:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion
及/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion
其值可為 0x1 或 0x0。使用者指定設定的優先順序高於電腦設定。命令列參數優先順序高於登錄設定值。
如果已啟用延遲環境變數擴充,驚嘆號字元會在執行時被用來取代環境變數值。
預設無法啟用檔案和目錄名稱完成。
您可以為特定的 CMD.EXE 呼叫,以 /F:ON 或 /F:OFF 開關啟用或停用檔案名稱完成。
您可以啟用或停用在同一部電腦上所有 CMD.EXE 的呼叫完成及/或使用者登入工作階段。
方法是使用 REGEDT32.EXE 設定其一或兩者登錄中的 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar
及/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
用於特定功能的控制字元十六進位值 (例如 0x4 是 Ctrl-D ; 0x6 是Ctrl-F)。
使用者指定設定的執行優先順序高於電腦上的設定。
命令列參數的執行優先順序高於登錄中的設定值。
如果以 /F:ON 開關啟用完成,則用於目錄名稱完成的控制字元是 Ctrl-D而用於檔案名稱完成的控制字元是 Ctrl-F。
如果您要停用在登錄中的特定完成字元,請使用空間值 (0x20),因為它不是正確的控制字元。
當您鍵入其中一個控制字元後,完成功能會被啟動。
如果路徑字串已存在,而且所建立的路徑清單也符合的話,完成函數會讀取到指標所在左方為止的路徑字串。
然後它會顯示第一個符合的路徑。
如果找不到符合的路徑,它會發出嗶聲並保留顯示。
如果您重覆按相同的控制字元,它將在符合的路徑清單中循環執行。
如果您同時按下 Shift 鍵與控制字元,可在清單中反向移動。
如果您進行編輯後再按控制字元的話,已儲存的符合路徑清單會被丟棄,並建立新的清單。
如果您在檔案及目錄完成功能之間切換,會有同樣的情況發生。
這兩個控制字元不同之處是 : 檔案完成字元可同時對應檔案及目錄名稱,而目錄完成字元只能對應目錄名稱。
如果您將檔案完成功能用在內建目錄命令上 (CD,MD 或 RD) 也等於使用了目錄完成功能。
如果您在路徑字串兩端加上引號,完成功能鍵就可正確處理包含空格或其他特殊字元的檔案名稱。
還有,如果您備份後,又在命令列中呼叫完成功能的話,已呼叫過完成功能的指標右方的文字會被丟棄。
要求加上引號的特殊字元有:
&()[]{}^=;!'+,`~
2015年2月10日 星期二
Win7 無法登入 Windows Server 2003!
可能原因一:
網路安全性:LAN Manager 驗證等級
解決:
cmd > gpedit.msc
電腦設定-安全性設定-本機原則-安全性選項
網路安全性:LAN Manager 驗證等級 > ;傳送 LM和NTLM 回應
可能原因二
是Win2003預設會傳送LM&NTLM回應而Win7 預設卻是只傳送NTLMv回應
網路安全性:LAN Manager 驗證等級
解決:
cmd > gpedit.msc
電腦設定-安全性設定-本機原則-安全性選項
網路安全性:LAN Manager 驗證等級 > ;傳送 LM和NTLM 回應
可能原因二
是Win2003預設會傳送LM&NTLM回應而Win7 預設卻是只傳送NTLMv回應
解決:
cmd > gt;regedit
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\LSA
新增數值名稱:LMCompatibilityLevel
資料類型: REG_DWORD
值:1
新增數值名稱:LMCompatibilityLevel
資料類型: REG_DWORD
值:1
可能原因三:
2015年2月1日 星期日
win 2008r2 設定iis7 .NET4 所遭遇問題
問題:HTTP 錯誤 500 - 內部伺服器錯誤
原因是

原因是:
1.必須啟用 IIS 角色並安裝 .Net Framework 4.0,
2..Net Framework 4.0 是自己手動安裝,造成 IIS 中的 ASP.NET 環境沒有即時更新,以至於出現這個錯誤(如下圖)。

修正
命令提示字元,以系統管理員身份執行

輸入aspnet_regiis -i (如下圖)

問題:Win32Exception (0x80004005): 存取被拒
堆疊追蹤:
版本資訊: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.225
但是我用CMD執行
原因是:應用程式集區,權限不正確或權限不足
修正:
原因是
修改
問題:
1.IS 伺服器 ASP.NET 應用程式 0x8007000d 問題處理方式
2.應用程式集區無ASP.NET v4.0和ASP.NET v4.0 Classic兩選項,會造成錯誤 500 - 內部伺服器錯誤
原因是:
1.必須啟用 IIS 角色並安裝 .Net Framework 4.0,
2..Net Framework 4.0 是自己手動安裝,造成 IIS 中的 ASP.NET 環境沒有即時更新,以至於出現這個錯誤(如下圖)。

修正
命令提示字元,以系統管理員身份執行

輸入aspnet_regiis -i (如下圖)

問題:Win32Exception (0x80004005): 存取被拒
存取被拒。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.ComponentModel.Win32Exception: 存取被拒。
原始程式錯誤:
例外詳細資訊: System.ComponentModel.Win32Exception: 存取被拒。
原始程式錯誤:
在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。 |
堆疊追蹤:
[Win32Exception (0x80004005): 存取被拒。] [ExternalException (0x80004005): 無法執行程式。執行的命令為 "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\picview\bae66830\6c1b1daf\1al1laar.cmdline"。] System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) +3237
System.CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) +7684200
Microsoft.CSharp.CSharpCodeGenerator.Compile(CompilerParameters options, String compilerDirectory, String compilerExe, String arguments, String& outputFile, Int32& nativeReturnValue, String trueArgs) +331
Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) +887
Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch(CompilerParameters options, String[] fileNames) +170 System.Web.Compilation.AssemblyBuilder.Compile() +2695
System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +257 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +566 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +613
System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +201
System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +177 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +56
System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +42 System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +476
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371
|
版本資訊: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.225
但是我用CMD執行
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\picview\bae66830\6c1b1daf\1al1laar.cmdline"
原因是:應用程式集區,權限不正確或權限不足
修正:
2013年3月9日 星期六
ASP.NET跨頁面傳值技巧總結
1. 使用QueryString變量
QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對于傳遞數組或對象的話,就不能用這個方法了。下面是一個例子:
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
2. 使用Application 對象變量
Application對象的作用範圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
3. 使用Session變量
想必這個肯定是大家使用中最常見的用法了,其操作與Application類似,作用于用戶個人,所以,過量的存儲會導致服務器內存資源的耗盡。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Session["name"] = Label.Text;
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Session["name"].ToString();
}
最後用這個成功了!
QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對于傳遞數組或對象的話,就不能用這個方法了。下面是一個例子:
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
2. 使用Application 對象變量
Application對象的作用範圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
3. 使用Session變量
想必這個肯定是大家使用中最常見的用法了,其操作與Application類似,作用于用戶個人,所以,過量的存儲會導致服務器內存資源的耗盡。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Session["name"] = Label.Text;
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Session["name"].ToString();
}
最後用這個成功了!
.NET 清除 Session
1. clear() 清空所有 key 值
2. removeAll() 即呼叫 clear()
3. remove("Key") 刪除某 Key 的值
4. Abandon() 清除所有 Key 值,並呼叫 Session_End
4. 使用Cookie對象變量
這個也是大家常使用的方法,與Session一樣,其是什對每一個用戶而言的,但是有個本質的區別,即Cookie是存放在客戶端的,而session是存放在服務器端的。而且Cookie的使用要配合ASP.NET內置對象Request來使用。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}
您無法直接刪除使用者電腦上的 Cookie。然而,您可以將 Cookie 的到期日設定為過去的日期,引導使用者的瀏覽器刪除 Cookie
判斷 Cookie 是否存在,如果是的話,請使用相同名稱建立新的 Cookie。
將 Cookie 的到期日設定為過去的時間。
將 Cookie 加入 Cookies 集合物件。
下列程式碼範例,示範了如何在 Cookie 上設定過去的到期日。
1. clear() 清空所有 key 值
2. removeAll() 即呼叫 clear()
3. remove("Key") 刪除某 Key 的值
4. Abandon() 清除所有 Key 值,並呼叫 Session_End
4. 使用Cookie對象變量
這個也是大家常使用的方法,與Session一樣,其是什對每一個用戶而言的,但是有個本質的區別,即Cookie是存放在客戶端的,而session是存放在服務器端的。而且Cookie的使用要配合ASP.NET內置對象Request來使用。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}
您無法直接刪除使用者電腦上的 Cookie。然而,您可以將 Cookie 的到期日設定為過去的日期,引導使用者的瀏覽器刪除 Cookie
判斷 Cookie 是否存在,如果是的話,請使用相同名稱建立新的 Cookie。
將 Cookie 的到期日設定為過去的時間。
將 Cookie 加入 Cookies 集合物件。
下列程式碼範例,示範了如何在 Cookie 上設定過去的到期日。
If (Not Request.Cookies("UserPreferences1") Is Nothing) Then
Dim myCookie As HttpCookie
myCookie = New HttpCookie("UserPreferences1")
myCookie.Expires = DateTime.Now.AddDays(-1D)
Response.Cookies.Add(myCookie)
End If
5. 使用Server.Transfer方法
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
a.aspx的C#代碼
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //實例a窗體
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
6.Cross-Page Posting
定位至于源網頁位于相同的應用程序的網頁,可以讀取源網頁的值和公共屬性,但是不要按瀏覽器中的重新整理和上一步,這樣會照成無法預期的效果
eg:
aspx
您的名字:
cs:
TextBox name = (TextBox)PreviousPage.FindControl("name");//非public 成員
Label1.Text = "歡迎你:" + name.Text;
previouspage本身屬于page類,并且只有在來源網頁和目標網頁屬于同一個asp.net應用程序下的時候才能引用,如果網頁不是跨網頁公布的目標,或者是網頁在不同的應用程序之中,就不會初始化previouspage屬性,就不能使用previouspage來存取任何信息
獲得網頁的公共屬性:
source.cs:
public string UserName
{
get{return aa.text;}
}
cross-page posting.aspx:
cross-page posting.cs:
lab.text = previousopage.username;
//一個網頁中只能指示一個previousPage,不然出出現編譯錯誤
5. 使用Server.Transfer方法
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
a.aspx的C#代碼
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //實例a窗體
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
6.Cross-Page Posting
定位至于源網頁位于相同的應用程序的網頁,可以讀取源網頁的值和公共屬性,但是不要按瀏覽器中的重新整理和上一步,這樣會照成無法預期的效果
eg:
aspx
您的名字:
cs:
TextBox name = (TextBox)PreviousPage.FindControl("name");//非public 成員
Label1.Text = "歡迎你:" + name.Text;
previouspage本身屬于page類,并且只有在來源網頁和目標網頁屬于同一個asp.net應用程序下的時候才能引用,如果網頁不是跨網頁公布的目標,或者是網頁在不同的應用程序之中,就不會初始化previouspage屬性,就不能使用previouspage來存取任何信息
獲得網頁的公共屬性:
source.cs:
public string UserName
{
get{return aa.text;}
}
cross-page posting.aspx:
cross-page posting.cs:
lab.text = previousopage.username;
//一個網頁中只能指示一個previousPage,不然出出現編譯錯誤
訂閱:
文章 (Atom)
-
Windows 喜歡拋出具有一百萬種可能原因的神秘錯誤代碼,以及至少同樣多的解決方案。錯誤代碼 0x80004005 也不例外,盡管它確實有一些常見原因。以下是您可以嘗試在 Windows 10 或 Windows 11 上修覆的一些問題。 目錄 是什麽導致錯誤代碼 0x800...
-
方法 1.運行搜索和索引疑難解答 按 Windows + I 鍵打開設置。導航到系統> 疑難解答。 點擊其他疑難解答。 向下滾動並運行搜索和索引疑難解答。 您在使用搜索欄時遇到的問題。點擊下一步。 如果搜索欄找不到 再次選擇您在使用搜索欄時遇到的問題。疑難解答程序會建議一些...
-
Win10升級之後,很多xp的電腦都不能連上win10的網路芳鄰,找了很多資料都在說是權限問題,後來發現原來是另一個問題。 原來是官方認為 SMB 1.0有安全性的問題,因此只要重新啟用它就可。 1.首先要有系統管理員權限的命令提示字元底下輸入 sc.exe co...

















